package com.meatball.iot.common.mqtt.properties

import org.springframework.boot.context.properties.ConfigurationProperties
import org.springframework.cloud.context.config.annotation.RefreshScope
import org.springframework.context.annotation.Configuration
import kotlin.properties.Delegates

/**
 * TODO MQTT 配置类
 *
 * @author 张翔宇
 * @since 2024年6月7日
 */
@Configuration
@RefreshScope
@ConfigurationProperties(prefix = "mqtt")
class MqttProperties {
    /**
     * 地址
     */
    lateinit var host: String

    /**
     * 端口
     */
    var port: Int by Delegates.notNull()

    /**
     * 用户名
     */
    lateinit var username: String

    /**
     * 密码
     */
    lateinit var password: String

    /**
     * 客户端ID
     */
    lateinit var clientId: String

    /**
     * 订阅主题，多个用 , 隔开
     */
    var inboundTopics: List<String> = emptyList()
}